﻿package com.google.code.p.ivans.patternsentities;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import com.google.code.p.ivans.entities.Waiter;
import com.google.code.p.ivans.myexceptions.EntityNotFoundException;

public class OpenWaiterByNameHandler extends Handler{

	@Override
	public void handle() {
		//logger.DEBUG
		if(Main.logger.isDebugEnabled()){
			Main.logger.debug("[DEBUG]Главное меню -> Официанты -> Открыть -> по ФИО - 2");
		}
		
		String first_ = "";
		String last_ = "";
		String patronymic_ = "";
		
		//ввод данных для поиска
		try{	
			System.out.println(">>Введите имя");
			while((first_ = Main.bufread.readLine()).length() < 1) {}
			

			System.out.println(">>Введите фамилию");
			while((last_ = Main.bufread.readLine()).length() < 1) {}

			System.out.println(">>Введите отчество");
			while((patronymic_ = Main.bufread.readLine()).length() < 1) {}
			
			List<Waiter> seached;
			try {
				seached = Main.waiterSI.getAllWaitersByName(first_, last_, patronymic_);
				System.out.println("----------------------");
				System.out.println("Результаты:" + seached.size() +"\n");
				String result = Main.showWaiters(seached);
				
				//logger.INFO
				if(Main.logger.isInfoEnabled()){
					Main.logger.info("[INFO]Поиск официантов по имени:\n" + result);
				}
			} 
			catch (EntityNotFoundException e) {
				//println("Отсутствуют официанты с данным именем");
				
				Main.logger.error("[ERROR]Отсутствуют официанты с данным именем");
				//e.printStackTrace();
			}	
			catch(SQLException ioe) {
				//println("Ошибка записи данных официанта в бд. Причина - " + ioe.getMessage());

				//logger.error("[ERROR]Ошибка записи данных официанта в файл. Причина - " + ioe.getMessage());
			}								
		}
		catch(IOException ignore) {
			Main.logger.error("[ERROR]Ошибка при чтении введенных данных");
		}		
	}

}
